package com.vdongchina.miniapp.http.dto;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.io.Serializable;

/**
 * Copyright (C)
 * FileName: SettleRequest
 * Author:   maokai
 * Date:     2021/8/12 16:28
 * Description:
 */
@Data
public class SettleRequest implements Request {

    /**
     * 是	开发者侧的结算号, 不可重复
     */
    @JsonProperty(value = "out_settle_no")
    private String outSettleNo;
    /**
     * 是	商户分配订单号，标识进行结算的订单
     */
    @JsonProperty(value = "out_order_no")
    private String outOrderNo;
    /**
     * 是	结算描述，长度限制 80 个字符
     */
    @JsonProperty(value = "settle_desc")
    private String settleDesc;
    /**
     * notify_url
     */
    @JsonProperty(value = "notify_url")
    private String notifyUrl;
    /**
     * 否	开发者自定义字段，回调原样回传
     */
    @JsonProperty(value = "cp_extra")
    private String cpExtra;
    /**
     * 是	小程序APPID
     */
    @JsonProperty(value = "app_id")
    private String appId;
    /**
     * 是	开发者对核心字段签名, 签名方式见文档附录, 防止传输过程中出现意外
     */
    private String sign;
    /**
     * 否，服务商模式接入必传	第三方平台服务商 id，非服务商模式留空
     */
    @JsonProperty(value = "settle_params")
    private SettleParams settleParams;

    @Data
    public static class SettleParams implements Serializable {
        /**
         * 分账方商户号
         */
        @JsonProperty(value = "merchant_uid")
        private String merchantUid;
        /**
         * 分账金额
         */
        private int amount;

    }

}
